home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d21
/
dvglue.arc
/
TVAPI.H
< prev
next >
Wrap
C/C++ Source or Header
|
1990-01-09
|
26KB
|
601 lines
/*
** TVAPI.H - types and function prototypes.
** IBM Personal Computer - TopView C Interface Header File.
** Written for Borland Turbo C v1.5.
*/
#include <alloc.h>
#include <dos.h>
typedef unsigned char BYTE; /* 8-bit value */
typedef unsigned short WORD; /* 16-bit value */
typedef unsigned long DWORD; /* 32-bit value */
typedef void far *OBJECT; /* object handle */
#define OBJSEG FP_SEG /* we often need only the segment of obj handle */
#define MK_OBJ(seg) (OBJECT)MK_FP(seg,0) /* sometimes have to build an obj handle */
/***********************************************************/
/* functions that are implemented inline */
/***********************************************************/
#define TVpause() _AX = 0x1000, geninterrupt(0x15)
#define TVostack() _AX = 0x101A, geninterrupt(0x15)
#define TVbegincrit() _AX = 0x101B, geninterrupt(0x15)
#define TVendcrit() _AX = 0x101C, geninterrupt(0x15)
#define TVustack() _AX = 0x1025, geninterrupt(0x15)
/***********************************************************/
/* functions that are just aliases of others */
/***********************************************************/
#define TVwin_hcur(handle) TVputchar(handle,0,0)
#define TVunlock(mbx) TVmbx_close(mbx)
#define TVwin_blanks(win,count) TVwin_repchar(win,' ',count)
/***********************************************************/
/* functions that need to override default library funcs */
/***********************************************************/
#define malloc _TV_malloc
#define calloc _TV_calloc
#define realloc _TV_realloc
#define free _TV_free
/***********************************************************/
/* Manifest constants for TVposwin() */
/***********************************************************/
/* select a horizontal position ... */
#define PW_HCURR 0
#define PW_HCENTER 1
#define PW_LEFT 2
#define PW_RIGHT 3
/* ... and a vertical position by ORing them together */
#define PW_VCURR 0
#define PW_VCENTER 4
#define PW_TOP 8
#define PW_BOTTOM 12
/* optionally, choose not to refresh the screen right away */
#define PW_NOREDRAW 16
/***********************************************************/
/* Constants for TVkbd_setflags() & TVkbd_clrflags() */
/***********************************************************/
#define KBD_FIELDMODE 1
#define KBD_ACTIVE 2
/***********************************************************/
/* Constants for TVwin_scroll() and TVfld_scroll() */
/***********************************************************/
#define SCRL_UP 0
#define SCRL_DOWN 1
#define SCRL_LEFT 2
#define SCRL_RIGHT 3
/***********************************************************/
/* Constants for TVfld_build_header() and type FT_HEADER */
/***********************************************************/
/* screen types (OR together to get desired behavior) */
#define F_NOREAD 0 /* TVkbd_read() returns no data */
#define F_READARRAY 1 /* read returns packed array of characters */
#define F_READALL 2 /* read returns var-length records of all fields */
#define F_READNEW 3 /* read returns var-length records of modified fields */
#define F_RIGHTBUTTON 0x10 /* right mouse button terminates entry */
#define F_LEFTBUTTON 0x20 /* left mouse button terminates entry */
#define F_ALLOWKBD 0x40 /* menu choices can be made by keystrokes as well as by point-and-click */
/***********************************************************/
/* Constants for TVfld_build_entry() and typedef FT_ENTRY */
/***********************************************************/
/* field types */
#define F_NONENTRY 0x00
#define F_MENUECHO 0x40
#define F_FILLIN 0x80
#define F_MENU 0xC0
/* field modifiers for F_FILLIN (OR together) */
#define F_BEEP 0x80 /* beep when field is full */
#define F_NEXT 0x40 /* move to next field when field full */
#define F_NUMBER 0x20 /* enter text from right to left, for numbers */
#define F_UPPER 0x10 /* force input to uppercase */
#define F_CLEAR 0x08 /* clear old contents on first keystroke */
/***********************************************************/
/* Other predefined constants */
/***********************************************************/
/* Predefined Message Numbers: */
#define OBJECT_MSG 0 /* Return Object Handle */
#define NEW_MSG 1 /* Create New Object */
#define FREE_MSG 2 /* Free Object */
#define ADDR_MSG 3 /* Return Handle of Object */
#define DIR_MSG 3 /* Get Panel File Directory */
#define READ_MSG 4 /* Return Next Logical record (I/O) */
#define APPLY_MSG 4 /* Apply Panel to Window Object */
#define WRITE_MSG 5 /* Write String to Object */
#define SIZE_MSG 8 /* Return Size of Object */
#define LEN_MSG 9 /* Return Length of Object */
#define ADDTO_MSG 10 /* Add To Value of Object */
#define SUBFROM_MSG 11 /* Subtract From Value of Object */
#define OPEN_MSG 12 /* Open Object for Use (I/O) */
#define CLOSE_MSG 13 /* Close Object (I/O) */
#define ERASE_MSG 14 /* Erase Object (I/O) */
#define STATUS_MSG 15 /* Return Status of Object (I/O) */
#define EOF_MSG 16 /* Return Object End of File Status (I/O) */
#define AT_MSG 17 /* Position Object Cursor (I/O) */
#define SETSCALE_MSG 17 /* Set Pointer Scaling Factors */
#define SETNAME_MSG 17 /* Assign name to mailbox */
#define READN_MSG 18 /* Return Next n Byte from Object (I/O) */
#define GETSCALE_MSG 18 /* Get Pointer Scaling Factors */
#define REDRAW_MSG 19 /* Redraw Object (WINDOW) */
#define SETICON_MSG 19 /* Specify Pointer Icon */
#define SETESC_MSG 20 /* Define User Escape */
#define LOCK_MSG 20 /* Request Exclusive Access */
/* Object Modifiers: */
#define TOS 0 /* Use Contents of Top of Stack as Object */
#define ME 1 /* Use Requesting Task's WINDOW as Object */
#define MAILTOS 2 /* Use MAILBOX(tos) as Object */
#define MAILME 3 /* Use MAILBOX(me) as Object */
#define KEYTOS 4 /* Use KEYBOARD(tos) as Object */
#define KEYME 5 /* Use KEYBOARD(me) as Object */
#define OBJQTOS 6 /* Use OBJECTQ(tos) as Object */
#define OBJQME 7 /* Use OBJECTQ(me) as Object */
#define WINDOW_CLASS 8 /* Use WINDOW Class as Object */
#define MAILBOX_CLASS 9 /* Use MAILBOX Class as Object */
#define KEYBOARD_CLASS 10 /* Use KEYBOARD Class as Object */
#define TIMER_CLASS 11 /* Use TIMER Class as Object */
#define POINTER_CLASS 15 /* Use POINTER Class as Object */
#define PANEL_CLASS 16 /* Use PANEL Class as Object */
/* Logical Text Attributes: */
#define NORMAL 1
#define NORMAL_HILITE 2
#define HELP 3
#define HELP_HILITE 4
#define ERROR 5
#define ERROR_HILITE 6
#define EMPHASIZED 7
#define MARK 8
/* ADD this to get reverse version of one of the above logical attributes */
#define REVERSE_VIDEO 8
/***********************************************************/
/* useful shorthands */
/***********************************************************/
#ifndef NIL
# define NIL (OBJECT) 0
#endif NIL
#ifndef FALSE
# define FALSE 0
#endif FALSE
#ifndef TRUE
# define TRUE !FALSE
#endif TRUE
/***********************************************************/
/* Type definitions used by library */
/***********************************************************/
typedef struct { /* send message parameter list */
WORD num_args; /* number of arguments */
DWORD arg[9]; /* 32-bit argument(s) */
} PARMLIST;
typedef struct { /* short message parameter list */
WORD num_args ;
DWORD arg[1] ;
} PARMLIST1 ;
typedef struct { /* short message parameter list */
WORD num_args ;
DWORD arg[2] ;
} PARMLIST2 ;
typedef struct { /* short message parameter list */
WORD num_args ;
DWORD arg[3] ;
} PARMLIST3 ;
typedef struct { /* short message parameter list */
WORD num_args ;
DWORD arg[4] ;
} PARMLIST4 ;
typedef struct { /* short message parameter list */
WORD num_args ;
DWORD arg[8] ;
} PARMLIST8 ;
typedef struct /* field table header */
{
BYTE numfields ;
BYTE type ;
int unknown ; /* apparently always zero */
BYTE curr_attr ;
BYTE selected_attr ;
} FT_HEADER ;
typedef struct /* field table entry, one for each field on screen */
{
BYTE upleftrow, upleftcol, lowrightrow, lowrightcol ;
BYTE type ;
BYTE modifier ;
BYTE status ;
BYTE key2 ;
} FT_ENTRY ;
/*-------------------------------------------------------*/
/* format of message which is sent on async notification */
/* ANY module using this MUST have alignment set to byte */
/* (-a- for TCC) */
typedef struct
{
BYTE event ; /* which event happened? */
union {
struct /* window was moved */
{
OBJECT window ;
char row ;
char col ;
} movement ;
struct /* window was resized */
{
OBJECT window ;
BYTE rows ;
BYTE cols ;
} resizing ;
struct /* window was scrolled */
{
OBJECT window ;
char mouse_row ;
char mouse_col ;
char unknown ;
signed char direction ;
} scrolling ;
struct /* window was requested to close */
{
OBJECT window ;
char mouse_row ;
char mouse_col ;
char unknown ;
} closing ;
struct /* help requested on window */
{
OBJECT window ;
char mouse_row ;
char mouse_col ;
char unknown ;
} help ;
BYTE video_mode ; /* video mode changed */
struct /* scissors selected */
{
OBJECT window ;
BYTE up_left_row ;
BYTE up_left_col ;
char unknown ;
OBJECT mailbox ;
BYTE height ;
BYTE width ;
} scissors ;
} msg ;
BYTE pad ; /* needed for TVreadmail() */
} NOTIFY_MSG ;
/*-------------------------------------------------------*/
/* format of .DVP file (superset of TopView .PIF file) */
typedef struct
{
BYTE unknown0 ; /* I see 0 always */
BYTE checksum ; /* makes sum of bytes of .PIF file equal zero */
char program_name[30] ; /* blank-padded */
WORD max_memory ; /* in K */
WORD min_memory ; /* in K */
char executable_name[64] ; /* blank-padded */
BYTE data_drive ; /* 0 = default, else drive letter ('A',...)
char data_directory[64] ; /* ASCIZ */
char parameters[64] ; /* ASCIZ */
BYTE video_mode ; /* 7Fh = use current */
BYTE num_text_pages ;
BYTE lowest_int ; /* number of lowest interrupt program changes */
BYTE highest_int ; /* number of highest interrupt program changes */
BYTE max_win_height ;
BYTE max_win_width ;
BYTE starting_row ; /* 0 = use default */
BYTE starting_col ; /* 0 = use default */
WORD total_overhead_RAM ; /* how many K to allocate for system RAM */
/* (= requested + amt needed for screen buffer) */
char shared_program[64] ; /* ASCIZ */
char shared_prg_data[64] ; /* ASCIZ */
BYTE flags1 ; /* bit 7 = set if writes directly to screen */
/* bit 6 = set if runs only in foreground */
/* bit 5 = set if uses math coprocessor */
/* bit 4 = set if "Keyboard Conflict" = 4 */
/* bit 3 = set if */
/* bit 2 = set if */
/* bit 1 = set if */
/* bit 0 = set if can be swapped out */
BYTE unknown170h ;
/* everything up to this point is identical to a TopView .PIF file */
/* the remainder is unique to a DESQview .DVP file. Note that there */
/* is some duplication of information */
char open_keys[2] ;
WORD script_buffer_size ; /* in bytes */
BYTE flags2 ; /* bit 7 = */
/* bit 2 = set if "Writes directly..." = '!' */
BYTE unknown176h ;
BYTE uses_own_colors ; /* 1 = yes, 0 = no */
BYTE unknown178h ;
BYTE unknown179h ;
BYTE unknown17Ah ;
BYTE unknown17Bh ;
BYTE close_on_exit ; /* 1 = close on exit, 0 = don't */
BYTE unknown17Dh ;
BYTE unknown17Eh ;
BYTE unknown17Fh ;
BYTE starting_height ; /* 0 = use default */
BYTE starting_width ; /* 0 = use default */
WORD max_expanded_mem ; /* in K, FFFFh = no limit */
BYTE flags3 ; /* bit 7 = */
/* bit 6 = */
/* bit 5 = */
/* bit 4 = 1 don't allow close window cmd */
/* bit 3 = set if "Runs only in fg" = ' ' */
/* bit 2 = */
/* bit 1 = */
/* bit 0 = */
BYTE keyboard_conflict ; /* 0 thru 4 */
BYTE num_graphics_pages ;
WORD system_RAM ; /* amount of SYSTEM RAM requested, in K */
BYTE initial_video_mode ; /* FFh = use current mode if compatible */
BYTE reserved[22] ; /* currently unused */
} DVP_file ;
/***********************************************************/
/* low-level functions which should not be called directly */
/***********************************************************/
void far pascal _TVnotify_handler(void) ;
void far pascal _TVinterrupt_handler(void) ;
/***********************************************************/
/* support functions which guard non-reentrant functions */
/***********************************************************/
void *_TV_malloc(size_t size) ;
void *_TV_calloc(size_t nitems, size_t size) ;
void *_TV_realloc(void *block, size_t size) ;
void _TV_free(void *block) ;
/***********************************************************/
/* the API function calls */
/***********************************************************/
int pascal TVinit(void) ;
int pascal DVinit(void) ;
void pascal DVexit(void) ;
void pascal TVexit(void) ;
WORD pascal DVprogname(void) ;
int pascal DVappnum(void) ;
void pascal DVdbgpoke(char c) ;
void pascal DVapilevel(int level, int mod) ;
WORD pascal DVpushkey(int key, int scancode) ;
void pascal DVjustify(int justify) ;
void pascal DVcommon_mem(WORD *avail, WORD *largest, WORD *total) ;
void pascal DVconv_mem(WORD *avail, WORD *largest, WORD *total) ;
void pascal DVexp_mem(WORD *avail, WORD *largest, WORD *total) ;
WORD pascal DVver(void) ;
void pascal TVsendmsg(WORD msg_num,WORD modifier,OBJECT object_hdl,PARMLIST far *msg_args) ;
void pascal TVsendmsg0(WORD msg_num,WORD modifier,OBJECT object_hdl) ;
DWORD pascal TVsendmsg1(WORD msg_num,WORD modifier,OBJECT object_hdl) ;
void pascal TVpanel_close(OBJECT panel) ;
void pascal TVpanel_free(OBJECT panel) ;
void pascal TVpanel_open(OBJECT panel, char *file) ;
OBJECT pascal TVapp_start(void *pif, int pif_size) ;
void pascal TVwin_stream(OBJECT window,BYTE *stream) ;
OBJECT pascal TVwin_new(OBJECT window,int rows,int cols) ;
OBJECT pascal TVmbx_sender(OBJECT mbx) ;
void pascal TVmbx_clear(OBJECT mbx) ;
void pascal TVmbx_close(OBJECT mbx) ;
int pascal TVmbx_eof(OBJECT mbx) ;
OBJECT pascal TVmbx_find(char *name) ;
void pascal TVmbx_free(OBJECT mbx) ;
OBJECT pascal TVmymbx(void) ;
OBJECT pascal TVmbxof(OBJECT task) ;
void pascal TVmbx_name(OBJECT mbx,char *name) ;
OBJECT pascal TVmbx_new(void) ;
void pascal TVmbx_open(OBJECT mbx) ;
int pascal TVreadmail(OBJECT mbx,char *buffer,int maxsize) ;
void pascal TVsendmail(OBJECT mbx,char *msg,int length) ;
void pascal TVmbx_write(OBJECT mbx,int reference,int status,char *msg,int length) ;
int pascal TVmbx_size(OBJECT mbx) ;
int pascal TVmbx_status(OBJECT mbx) ;
int pascal TVwin_read(OBJECT win,void *buffer,int maxsize) ;
int pascal TVwin_nread(OBJECT win,void *buffer,int n) ;
void pascal TVfld_attr(OBJECT win,int field,int attr) ;
void pascal TVfld_char(OBJECT win,int field,int c) ;
void pascal TVfld_clear(OBJECT win,int field) ;
void pascal TVfld_cursor(OBJECT win,int field) ;
void pascal TVfld_entry(OBJECT win,int field,FT_ENTRY *entry) ;
void pascal TVfld_header(OBJECT win,FT_HEADER *header) ;
void pascal TVfld_scroll(OBJECT win,int fld,int direction) ;
int pascal TVfld_swrite(OBJECT win,int field,char *s) ;
void pascal TVfld_type(OBJECT win,int fld,int type) ;
int pascal TVfld_write(OBJECT win,int field,char *s) ;
int pascal TVqry_field(OBJECT win,int fld,int bufsize,char *buffer) ;
void pascal TVqry_entry(OBJECT win,int fld,FT_ENTRY *entry) ;
void pascal TVqry_header(OBJECT win,FT_HEADER *header) ;
unsigned int pascal TVqry_fieldsize(OBJECT win,int fld) ;
int pascal TVqry_type(OBJECT win,int fld) ;
void pascal TVgetbuf(OBJECT win,OBJECT *buffer, int *size, int *flag) ;
void pascal TVtimer_begin(OBJECT timer, DWORD time) ;
void pascal TVtimer_close(OBJECT timer) ;
void pascal TVtimer_free(OBJECT timer) ;
void pascal TVtimer_start(OBJECT timer) ;
void pascal TVtimer_stop(OBJECT timer) ;
void pascal TVtimer_set(OBJECT timer,int hour,int minute,int second,int hundredth) ;
DWORD pascal TVtimer_elapsed(OBJECT timer) ;
DWORD pascal TVtimer_len(OBJECT timer) ;
DWORD pascal TVtimer_wait(OBJECT timer) ;
OBJECT pascal TVtimer_new(void) ;
int pascal TVtimer_status(OBJECT timer) ;
WORD pascal TVgetbit(void far (*handler)(void)) ;
void pascal TVfreebit(WORD bit) ;
void pascal TVsetbit(WORD bit) ;
int pascal TVisobj(OBJECT obj) ;
void pascal TVapp_goback(OBJECT win) ;
void pascal TVapp_gofore(OBJECT win) ;
void pascal TVapp_free(OBJECT win) ;
void pascal TVapp_hide(OBJECT win) ;
void pascal TVapp_show(OBJECT win) ;
void pascal TVapp_suspend(OBJECT win) ;
void pascal TVkbd_setflags(OBJECT kbd,int flags) ;
void pascal TVkbd_clrflags(OBJECT kbd,int flags) ;
void pascal TVkbd_clear(OBJECT kbd) ;
void pascal TVkbd_close(OBJECT kbd) ;
void pascal TVkbd_setesc(OBJECT kbd,void far (*func)(void)) ;
void pascal TVkbd_free(OBJECT kbd) ;
void pascal TVkbd_open(OBJECT kbd,OBJECT win) ;
void pascal TVkbd_write(OBJECT kbd,char *data,int size,int scancode) ;
OBJECT pascal TVmykbd(void) ;
OBJECT pascal TVkbdof(OBJECT task) ;
OBJECT pascal TVkbd_new(void) ;
int pascal TVkbd_read(OBJECT kbd,char *buffer,int maxsize) ;
int pascal TVkbd_messages(OBJECT kbd) ;
int pascal TVkbd_status(OBJECT kbd) ;
int pascal TVerrormsg(OBJECT win, char *string,int tone,int button,int rows,int cols) ;
OBJECT pascal TVlocate(OBJECT win,int row,int col) ;
void pascal TVlock(OBJECT mbx) ;
void pascal TVwin_allow(OBJECT win,int command) ;
void pascal TVwin_disallow(OBJECT win,int command) ;
void pascal TVwin_async(OBJECT win,void far (*func)(void)) ;
void pascal TVwin_notify(OBJECT win,int event) ;
void pascal TVwin_cancel(OBJECT win,int event) ;
void pascal TVwin_bottom(OBJECT win) ;
void far * pascal TVgetmem(unsigned amt) ;
void pascal TVputmem(void far *block) ;
void pascal TVforeonly(OBJECT taskwin,int foreonly) ;
void pascal TVwin_minsize(OBJECT win,int rows,int cols) ;
void pascal TVwin_maxsize(OBJECT win,int rows,int cols) ;
void cdecl TVwin_reorder(OBJECT win,unsigned first,...) ;
void pascal TVwin_top(OBJECT win) ;
void pascal TVwin_topsys(OBJECT win) ;
void pascal TVobq_add(OBJECT obq, OBJECT item) ;
OBJECT pascal TVobject(WORD which) ;
int pascal TVobq_size(OBJECT obq) ;
DWORD pascal TVobq_status(OBJECT obq) ;
void pascal TVobq_clear(OBJECT obq) ;
void pascal TVobq_close(OBJECT obq) ;
OBJECT pascal TVmyobq(void) ;
OBJECT pascal TVobqof(OBJECT task) ;
void pascal TVobq_open(OBJECT obq) ;
OBJECT pascal TVobq_read(OBJECT obq) ;
void pascal TVobq_remove(OBJECT obq, OBJECT item) ;
OBJECT pascal TVpanel_new(void) ;
DWORD pascal TVpanel_status(OBJECT panel) ;
int pascal TVpanel_size(OBJECT panel) ;
void pascal TVptr_open(OBJECT pointer, OBJECT win) ;
void pascal TVptr_close(OBJECT pointer) ;
void pascal TVptr_erase(OBJECT pointer) ;
void pascal TVptr_free(OBJECT pointer) ;
void pascal TVptr_icon(OBJECT pointer, char symbol) ;
OBJECT pascal TVptr_new(void) ;
void pascal TVptr_setflags(OBJECT pointer,WORD flags) ;
int pascal TVptr_messages(OBJECT pointer) ;
DWORD pascal TVptr_status(OBJECT pointer) ;
void pascal TVptr_clrflags(OBJECT pointer,WORD flags) ;
void pascal TVptr_goto(OBJECT ptr,int row,int col) ;
void pascal TVptr_setscale(OBJECT ptr,int x,int y) ;
void pascal TVptr_getscale(OBJECT ptr,int *x,int *y) ;
int pascal TVptr_read(OBJECT win,void *buffer,int maxsize) ;
void pascal TVposwin(OBJECT win, OBJECT parent, int pos) ;
void pascal TVputchar(OBJECT win, int c, int attribute) ;
void pascal TVwin_point(OBJECT win,OBJECT ptr) ;
int pascal TVqry_attr(OBJECT win) ;
int pascal TVqry_color(OBJECT win,int attr) ;
int pascal TVqry_ctrl(OBJECT win) ;
void pascal TVqry_cursor(OBJECT win,int *row, int *col) ;
int pascal TVqry_frattr(OBJECT win) ;
int pascal TVqry_frame(OBJECT win) ;
int pascal TVqry_hidden(OBJECT win) ;
int pascal TVqry_logattr(OBJECT win) ;
int pascal TVqry_leave(OBJECT win) ;
void pascal TVqry_lsize(OBJECT win,int *rows, int *cols) ;
void pascal TVqry_origin(OBJECT win,int *row, int *col) ;
void pascal TVqry_position(OBJECT win,int *row, int *col) ;
void pascal TVqry_size(OBJECT win,int *rows,int *cols) ;
void far *TVshadow(void) ;
void far *DVshadow_start(int *rows,int *cols) ;
void DVshadow_stop(void) ;
void TVupdate(void far *first, WORD count) ;
void pascal TVsleep(DWORD time) ;
void pascal TVsound(int freq, int duration) ;
void pascal TVfreetask(OBJECT task) ;
OBJECT pascal TVmytask(void) ;
void pascal TVinterrupt(OBJECT task,void far (*func)(void)) ;
OBJECT pascal TVnew_task(OBJECT parent,char *title,int row,int col,int rows,int cols,char *stack,int stacksize,void (*startaddr)(int)) ;
OBJECT cdecl TVapp_new(OBJECT win,int row,int col,int rows,int cols,char *program, ...) ;
void pascal TVposttask(OBJECT task) ;
void pascal TVstarttask(OBJECT task) ;
void pascal TVstoptask(OBJECT task) ;
WORD pascal TVver(void) ;
void pascal TVwin_attach(OBJECT win) ;
void pascal TVwin_detach(OBJECT win) ;
void pascal TVwin_attr(OBJECT win,int attr) ;
void pascal TVwin_clear(OBJECT win) ;
void pascal TVwin_color(OBJECT win,int logattr,int physattr) ;
void pascal TVwin_ctrl(OBJECT win,int ctrl) ;
void pascal TVwin_cursor(OBJECT win,int row,int col) ;
int pascal TVwin_eof(OBJECT win) ;
void pascal TVwin_frattr(OBJECT win,int attr) ;
void pascal TVwin_fill(OBJECT win,char c) ;
void pascal TVwin_frame(OBJECT win,int frame) ;
void pascal TVwin_free(OBJECT win) ;
OBJECT pascal TVmywindow(void) ;
void pascal TVwin_hide(OBJECT win) ;
void pascal TVwin_unhide(OBJECT win) ;
OBJECT pascal TVcreate_window(OBJECT win,char *title,int rows,int cols, int unknown1, DWORD unknown3) ;
void pascal TVwin_logattr(OBJECT win,int logical) ;
void pascal TVwin_leave(OBJECT win, int leave) ;
void pascal TVwin_lsize(OBJECT win,int rows,int cols) ;
void pascal TVwin_move(OBJECT win,int row,int col) ;
void pascal TVwin_origin(OBJECT win,int row,int col) ;
void pascal TVredrawwin(OBJECT win) ;
int cdecl TVwin_printf(OBJECT win,char *format, ...) ;
void pascal TVwin_redraw(OBJECT win) ;
void pascal TVwin_repattr(OBJECT win,int attr,int count) ;
void pascal TVwin_repchar(OBJECT win,int c,int count) ;
void pascal TVwin_resize(OBJECT win,int rows,int cols) ;
int pascal TVwin_size(OBJECT win) ;
void pascal TVwin_swrite(OBJECT win,char *string) ;
void pascal TVwin_title(OBJECT win,char *title) ;
int pascal TVwin_width(OBJECT win) ;
void pascal TVwin_writea(OBJECT win,char *attr,int len) ;
void pascal TVwin_writeca(OBJECT win,char *chars,char *attr,int len) ;
void pascal TVwin_write(OBJECT win,char *string,int len) ;
void pascal TVqry_title(OBJECT win,char *title,int size) ;
void pascal TVwin_atread(OBJECT win,int read_attr) ;
int pascal TVqry_atread(OBJECT win) ;
void pascal TVwin_gotoxy(OBJECT win,int x,int y) ;
int pascal TVkbd_getc(OBJECT kbd) ;
void pascal TVfld_point(OBJECT win,int fld,int x,int y) ;
void pascal TVfld_reset(OBJECT win) ;
void pascal TVfld_altmode(OBJECT kbd,int altmode) ;
BYTE * pascal TVfld_build_header(int num_fields,int screen_type,int curr_attr,int selected_attr) ;
void pascal TVfld_build_entry(BYTE *stream,int field,int upleftrow,int upleftcol,
int lowrightrow,int lowrightcol,int type,int modifier,
int status,int key2) ;
void pascal TVfld_build_color(BYTE *stream,int field,int attr) ;
void pascal TVfld_marker(OBJECT win,char marker) ;
void pascal TVwin_scroll(OBJECT win,int top,int left,int height,int width, int direction) ;